﻿using System.Collections.Generic;

namespace Sinacor.Servico.Bovespa.Contabil.Service.ServiceImplementation.Translator.DataContractToBusinessEntity
{
    /// <summary>
    /// Service.ServiceImplementation.Translator.DataContractToBusinessEntity Class - ContaContabil
    /// </summary>
    public class ContaContabil
    {
        #region Métodos Públicos

        /// <summary>
        /// Traduz um contrato de dados do tipo DataContract.Request.FiltroContaContabilRequest para uma entidade de negócio
        /// do tipo BusinessEntity.Parameter.FiltroContaContabil.
        /// </summary>
        /// <param name="request">DataContract.Request.FiltroContaContabilRequest</param>
        /// <returns>BusinessEntity.Parameter.FiltroContaContabil</returns>
        public BusinessEntity.Parameter.FiltroContaContabil ToFiltroContaContabil(DataContract.Request.FiltroContaContabilRequest request)
        {
            BusinessEntity.Parameter.FiltroContaContabil response = new BusinessEntity.Parameter.FiltroContaContabil();

            response.CodigoResumido = request.CodigoResumido;
            response.Digito = request.Digito;
            response.NomeConta = request.NomeConta;
            response.NumeroConta = request.NumeroConta;

            return response;
        }

        /// <summary>
        /// Traduz uma lista de contratos de dados do tipo DataContract.Request.FiltroContaContabilRequest para uma lista de entidades de negócio
        /// do tipo BusinessEntity.Parameter.FiltroContaContabil.
        /// </summary>
        /// <param name="requestList">Lista de contrato de dados do tipo DataContract.Request.FiltroContaContabilRequest</param>
        /// <returns>Lista de entidades do tipo BusinessEntity.Parameter.FiltroContaContabil</returns>
        public List<BusinessEntity.Parameter.FiltroContaContabil> ToFiltroContaContabil(List<DataContract.Request.FiltroContaContabilRequest> requestList)
        {
            List<BusinessEntity.Parameter.FiltroContaContabil> responseList = new List<BusinessEntity.Parameter.FiltroContaContabil>();

            foreach (DataContract.Request.FiltroContaContabilRequest request in requestList)
                responseList.Add(this.ToFiltroContaContabil(request));

            return responseList;
        }

        #endregion
    }
}
